let i = 0;
let type = 'pending'

function timedCount() {
    if (type === 'pending') {
        i = i + 1;
        /**
         * 1. worker 线程向主线程发送消息
         * 用 postMessage 或者 self.postMessage
         * */
        self.postMessage(i);
        setTimeout(timedCount, 1000);
    }
}

timedCount();

/**
 * 2. worker 线程接受主线程的消息
 * */
self.addEventListener("message", function (event) {
    console.log(event.data, '====')
    type = event.data;

    /**
     * 4. 在 worker 线程中关闭线程
     * */
    self.close();
})

/**
 * 3. worker 线程监听错误消息
 *
 * 3.1 error 当worker内部出现错误时触发
 * 3.2 messageerror 当 message 事件接收到无法被反序列化的参数时触发
 *
 * */
self.addEventListener('error', err => {
    console.log(err.message);
});
self.addEventListener('messageerror', err => {
    console.log(err.message);
});